﻿using System;
using System.Data;
using System.Data.Entity;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using orienta.Models;

using Servicios.DataContract;

namespace orienta.Controllers
{
    public class WsController : Controller
    {
        public int _TIPO_DOC_DNI = 1;
        public int _COD_USUARIO_ADMIN = 1;

        private GoodTireEntities db = new GoodTireEntities();

        public ActionResult Index()
        {

            ServicesClient objWC_ADMIN = new ServicesClient();

            Servicios.DataContract.DCUsuario objDCUsuario = new Servicios.DataContract.DCUsuario();
            List<Servicios.DataContract.DCUsuario> objListDCUsuario = new List<Servicios.DataContract.DCUsuario>();

            DCUsuario[] objArrayDCUsuario = new DCUsuario[50];


            objDCUsuario.Login = "usr_orienta";
            objDCUsuario.Password = "3fad33825b048c71f7d39a0860da7efd94177f78";
            objDCUsuario.UsuarioSistema = "USR_ORIENTA";
            objDCUsuario.PassSistema = "515T3M40R13NT4";


            objArrayDCUsuario = objWC_ADMIN.paADMIN_Validar_Usuario(objDCUsuario);

            foreach (DCUsuario objrow in objArrayDCUsuario)
            {
                ORIMaeFuncionario objORIMaeFuncionario = new ORIMaeFuncionario();
                objORIMaeFuncionario.nIdeTipoDoc = _TIPO_DOC_DNI;
                objORIMaeFuncionario.vNumDocum = objrow.Dni;
                objORIMaeFuncionario.vPrimNombre = objrow.Nombre;
                objORIMaeFuncionario.vPrimApellido = objrow.Nombre;
                objORIMaeFuncionario.vSegApellido = objrow.Nombre;
                objORIMaeFuncionario.dFecReg = DateTime.Now;
                objORIMaeFuncionario.nIdeUsuReg = _COD_USUARIO_ADMIN;

                ORIMaeFuncionario objORIMaeFuncionarioDB = db.ORIMaeFuncionario.SingleOrDefault(o => (o.nIdeTipoDoc == _TIPO_DOC_DNI && o.vNumDocum == objrow.Dni));
                if (objORIMaeFuncionarioDB == null)
                {
                    db.ORIMaeFuncionario.AddObject(objORIMaeFuncionario);
                    db.SaveChanges();

                    objORIMaeFuncionarioDB = db.ORIMaeFuncionario.SingleOrDefault(o => (o.nIdeTipoDoc == _TIPO_DOC_DNI && o.vNumDocum == objrow.Dni));
                }
                else
                {
                    db.ORIMaeFuncionario.Attach(objORIMaeFuncionarioDB);
                    db.ObjectStateManager.ChangeObjectState(objORIMaeFuncionarioDB, EntityState.Modified);
                    db.SaveChanges();
                }

                ORIMaeUsuario objORIMaeUsuario = new ORIMaeUsuario();
                objORIMaeUsuario.vCodUsuario = objrow.Login;
                objORIMaeUsuario.nIdePerfil = objrow.Id_Perfil;
                objORIMaeUsuario.nIdeDep = objrow.Id_Area;
                objORIMaeUsuario.nIdeFuncionario = objORIMaeFuncionarioDB.nIdeFuncionario;
                objORIMaeUsuario.dtFecReg = DateTime.Now;

                ORIMaeUsuario objORIMaeUsuarioDB = db.ORIMaeUsuario.SingleOrDefault(o => o.vCodUsuario == objORIMaeUsuario.vCodUsuario);

                if (objORIMaeUsuarioDB == null)
                {
                    db.ORIMaeUsuario.AddObject(objORIMaeUsuario);
                    db.SaveChanges();
                } else {
                    db.ORIMaeUsuario.Attach(objORIMaeUsuarioDB);
                    db.ObjectStateManager.ChangeObjectState(objORIMaeUsuarioDB, EntityState.Modified);
                    db.SaveChanges();
                }

                


                /*BEUsuario objBEUsuario;
                objBEUsuario = new BEUsuario();
                objBEUsuario.Id_Usuario = objrow.Id_Usuario;
                objBEUsuario.Id_Menu = objrow.Id_Menu;
                objBEUsuario.Des_menu = objrow.Des_menu;
                objBEUsuario.Id_Sub_Menu = objrow.Id_Sub_Menu;
                objBEUsuario.Des_Sub_Menu = objrow.Des_Sub_Menu;
                objBEUsuario.Pagina = objrow.Pagina;
                objBEUsuario.Id_Nivel_Acceso = objrow.Id_Nivel_Acceso;
                objBEUsuario.Id_Perfil = objrow.Id_Perfil;
                objBEUsuario.Bloque = objrow.Bloque;
                objBEUsuario.Id_Tipo_Usuario = objrow.Id_Tipo_Usuario;
                objBEUsuario.Des_Tipo_Usuario = objrow.Des_Tipo_Usuario;
                objBEUsuario.Id_Usuario_Sist = objrow.Id_Usuario_Sist;
                objBEUsuario.Login = objrow.Login;
                objBEUsuario.Nombre = objrow.Nombre;
                objBEUsuario.Id_Muni = objrow.Id_Muni;
                objBEUsuario.Modulo = objrow.Modulo;
                objBEUsuario.Code_Depa = objrow.Code_Depa;
                objBEUsuario.Dni = objrow.Dni;
                objBEUsuario.Id_Area = objrow.Id_Area;
                objBEUsuario.Des_Area = objrow.Des_Area;
                objListBEUsuario.Add(objBEUsuario);
                objBEUsuario = null;*/
            }
            
            return View();
        }

    }
}
